#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>

int main()
{
    // 定义要创建的文件夹路径
    char *cxcnb[] = { "./USER",
                      "./USER/inc",
                      "./USER/src",
                      "./CMSIS",
                      "./CMSIS/core",
                      "./CMSIS/device",
                      "./CMSIS/device/startup",
                      "./LIB",
                      "./LIB/inc",
                      "./LIB/src"
    };

    // 创建文件夹
    for (size_t i = 0; i < sizeof(cxcnb) / sizeof(cxcnb[0]); i++)//注意这里会因为编译器版本
    {
        if (mkdir(cxcnb[i]) != 0)
        {
            printf("创建%s文件夹失败", cxcnb[i]);
        }
    }

    // 创建并写入 main.c 文件
    FILE *file = fopen("./USER/src/main.c", "w");
    if (file != NULL)
    {
        // 写入默认C语言模板
        fprintf(file, "#include <main.h>\n\nint main()\n{\n    // 在这里编写您的代码\n    printf(\"Hello, World!\\n\");\n    return 0;\n}\n");
        fclose(file);
    }
    else
    {
        printf("无法创建 main.c 文件\n");
    }

    // 创建并写入 main.h 文件
    file = fopen("./USER/inc/main.h", "w");
    if (file != NULL)
    {
        // 写入默认内容
        fprintf(file, "#ifndef MAIN_H\n#define MAIN_H\n\n");
        fprintf(file, "#ifdef __cplusplus\n");
        fprintf(file, "extern \"C\" {\n");
        fprintf(file, "#endif\n\n");
        fprintf(file, "// 在这里声明您的函数和变量");
        fprintf(file, "\n\n");
        fprintf(file, "#ifdef __cplusplus\n");
        fprintf(file, "}\n");
        fprintf(file, "#endif\n\n");
        fprintf(file, "#endif /* MAIN_H */\n");
        fclose(file);
    }
    else
    {
        printf("无法创建 main.h 文件\n");
    }

    // 创建 ReadMe.txt 文件
    file = fopen("./USER/ReadMe.txt", "w");
    if (file != NULL)
    {
        // 写入默认内容
        fprintf(file, "清热祛湿颗粒。\n");
        fclose(file);
    }
    else
    {
        printf("无法创建 ReadMe.txt 文件\n");
    }

    return 0;
}
